package com.hellenic.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.hellenic.beans.UtilisateurBean;

public class UtilisateurDao implements UtilisateurDaoInt {
    private SessionFactory sessionF;

    public UtilisateurDao( SessionFactory sessionF ) {
        this.sessionF = sessionF;
        System.out.println( "Message : Instanciation d'un objet UserDao" );
    }

    @SuppressWarnings( { "unchecked", "rawtypes" } )
    @Override
    public UtilisateurBean authentification( String login, String pwd ) throws DaoException {
        String hql = "FROM com.hellenic.beans.User user WHERE user.login = '" + login + "' AND user.pwd = '" + pwd
                + "'";
        List<UtilisateurBean> list = null;
        Session sess = null;
        System.out.println( "HQL : " + hql );

        try {
            // ouverture d'une session hibernate
            sess = sessionF.openSession();

            // execute la requette
            Query query = sess.createQuery( hql );

            // met le resultat sous form de list
            list = (List) query.list();

        } catch ( DaoException ex ) {
            System.out.println( "Erreur : execution authentification dans UserDao" );
        } finally {
            // libération des resources
            sess.close();
        }

        // test le resultat
        if ( list.size() == 1 ) {
            return (UtilisateurBean) list.get( 0 );
        } else {
            return null;
        }
    }
}
